home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Day Cry
/
Day Cry CD.bin
/
oh_towns
/
ein
/
sources
/
cdpsrc.lzh
/
CDP
/
GUI.C
< prev
next >
Wrap
C/C++ Source or Header
|
1994-07-19
|
11KB
|
403 lines
/*<Header>==============================================================
*
* ébécâvâîü[âä / "GUI.C"
*
* [ EIN(tm) project : âTâôâvâïâvâìâOâëâÇ ]
*
* COPYRIGHT Nam 1994, All rights reserved.
*
* özòtüEægì₧üEëⁿò╧üEÅñùÿùpé╖é╫é─Ä⌐ùRüBé╜é╛é╡û│ò█Å╪é┴é╖
*
*-----------------------------------------------------------------------
* V1.0L01â┐ 94.04.07/Nam âvâìâgâ^âCâv
*</Header>==============================================================*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <snd.h>
#include <winb.h>
#include <te.h>
#include <fntb.h>
#include <gui.h>
#include <egb.h>
//#include <file_dlg.h>
//#include <tifflib.h>
#include <msdos.cf>
#include <loader.h>
#include <math.h>
#include <io.h>
#include <guidbg.h>
#include <wgb.h>
// üª é▒é▒é▄é┼é¬ò╜ï╧ôIé╔Ägùpé│éΩéΘâwâbâ_
#include <time.h>
#include <cdrfrb.h>
#include <mos.h>
#include "..\ein\eintm.h" // EIN(TM)è╓ÿAâëâCâuâëâèé╠âwâbâ_
#define ERROR (-1)
#define DISPMODE_ICON (0)
#define DISPMODE_PANEL (1)
#define ID_BASE (0)
#define ID_MUSNO1 (2) // î╗ì▌ï╚ö╘Åπê╩îà
#define ID_MUSNO2 (3) // î╗ì▌ï╚ö╘ë║ê╩îà
#define ID_ANIM (4) // CDâAâjâüü[âVâçâô
#define ID_PMUSMODE (9) // ï╚Ä₧è╘ò\Īâéü[âh
#define ID_PMUSNO1 (7) // î╗ì▌ï╚ö╘Åπê╩îà
#define ID_PMUSNO2 (8) // î╗ì▌ï╚ö╘ë║ê╩îà
#define ID_PMUSMAX1 (16) // æSï╚ÉöÅπê╩îà
#define ID_PMUSMAX2 (17) // æSï╚Éöë║ê╩îà
#define ID_PMUSTM1 (10) // ï╚Ä₧è╘(ò¬Åπê╩îà)
#define ID_PMUSTM2 (11) // ï╚Ä₧è╘(ò¬ë║ê╩îà)
#define ID_PMUSTM3 (13) // ï╚Ä₧è╘(òbÅπê╩îà)
#define ID_PMUSTM4 (14) // ï╚Ä₧è╘(òbë║ê╩îà)
#define PT_NUM (524)
#define PT_NON (522)
#define PT_HFN (523)
#define PT_E (534)
#define PT_r (535)
#define PT_BIG (14)
#define PT_SMALL (28)
#define PT_ANIM_NON (518)
#define PT_ANIM_MIN (519)
#define PT_ANIM_MAX (521)
extern int ID_ICON[];
extern int ID_PANEL[];
extern int dispMode; // 0:ICON / 1:PANEL
extern int showTime; // 0:âgâëâbâNôαëëætÄ₧è╘, 1:âfâBâXâNôαëëætÄ₧è╘, 2:
extern struct TIMEADRS tracktime[], disctime, endtime;
extern int endtrack;
extern struct TIMEADRS trtime, dctime; // mphaseé┼ĵô╛
extern int getPlayStatus();
/* 2îàé╠ÉöÆlé≡ICONé╔É▌ÆΦé╡ò\Ī */
/* no:ò\Īé╡é╜éóÉöÆl(-3:"Er",-2:"--",-1:" ", 0ü`99:ÉöÆl) */
/* high:Åπê╩îàé╠òöòiID, low:ë║ê╩îàé╠òöòiid, fntNo:" "é╠iconö╘ìå, mode:1é╚éτÅπê╩îàé¬0é╠é╞é½é╔ò\Īé╡é╚éó */
void __setNumFnt( int no, int high, int low, int fntNo, int mode )
{
register int foo,bar;
switch( no ){
// "Er"
case -3:
/* ëëætö╘ìåò\Īé≡"Er"é╔ */
MMI_SendMessage( high, MM_SETSHAPE, 1, fntNo + 12);
MMI_SendMessage( low , MM_SETSHAPE, 1, fntNo + 13);
break;
// "--"
case -2:
/* ëëætö╘ìåò\Īé≡"--"é╔ */
MMI_SendMessage( high, MM_SETSHAPE, 1, fntNo + 1);
MMI_SendMessage( low , MM_SETSHAPE, 1, fntNo + 1);
break;
// " "
case -1:
/* ëëætö╘ìåò\Īé≡" "é╔ */
MMI_SendMessage( high, MM_SETSHAPE, 1, fntNo );
MMI_SendMessage( low , MM_SETSHAPE, 1, fntNo );
break;
// ëëætö╘ìåò\Īé≡ìXÉV //
default:
if ( (no>99)|| (no<0) ){
no=0;
}
foo = no / 10;
if ( (foo<1)&&(mode!=0) ){
foo =fntNo; // Åπê╩îàé¬0é╚éτë╜éαò\Īé╡é╚éóéµéñé╔
} else {
foo+=fntNo+2;
}
bar = (no % 10) + fntNo + 2;
MMI_SendMessage( high, MM_SETSHAPE, 1, foo );
MMI_SendMessage( low , MM_SETSHAPE, 1, bar );
break;
}
MMI_SendMessage( high, MM_SHOW, 0 );
MMI_SendMessage( low, MM_SHOW, 0 );
}
/*===================================================================*/
/* âpâlâïÅπé╠ò\ĪìXÉV */
/*===================================================================*/
int update_PANEL( int force )
{
static int oldMin=-2, oldSec=-2;
static int oldNo = -9;
int musNo = getPlayStatus();
register int i, foo,bar;
// ï¡ÉºÅæè╖éª
if ( force != 0 ){
oldNo =-9;
oldMin=oldNo;
oldSec=oldNo;
}
// ëëætÄ₧è╘é≡Åæè╖éª
switch( showTime ){
// âgâëâbâNôαëëætÄ₧è╘
case 0:
foo = trtime.min;
bar = trtime.sec;
break;
// âfâBâXâNôαëëætÄ₧è╘
case 1:
foo = dctime.min;
bar = dctime.sec;
break;
//
default:
i = (musNo < 100) ?musNo-1: 98;
foo = tracktime[i].min;
bar = tracktime[i].sec;
break;
}
if ( oldMin != foo ){
__setNumFnt( foo, ID_PANEL[ID_PMUSTM1], ID_PANEL[ID_PMUSTM2], PT_NON+PT_SMALL, 1 );
oldMin = foo;
}
if ( oldSec != bar ){
__setNumFnt( bar, ID_PANEL[ID_PMUSTM3], ID_PANEL[ID_PMUSTM4], PT_NON+PT_SMALL, 0 );
oldSec = bar;
}
// ï╚ö╘ìåé╠ò√é═òsùvé╚Åæè╖éªé≡é╡é╚éó
if ( oldNo == musNo ){
return NOERR;
}
oldNo = musNo;
switch( musNo ){
// éαé╡âGâëü[é╚éτ
case -1:
// ëëætö╘ìåé≡"Er"é╔
__setNumFnt( -3, ID_PANEL[ID_PMUSNO1], ID_PANEL[ID_PMUSNO2], PT_NON+PT_BIG, 1 );
// æSï╚ö╘ìåé≡" "é╔
__setNumFnt( -1, ID_PANEL[ID_PMUSMAX1], ID_PANEL[ID_PMUSMAX2], PT_NON, 1 );
break;
// éαé╡ÆΓÄ~Æåé╚éτ
case 0:
// ëëætö╘ìåé≡"--"é╔
__setNumFnt( -2, ID_PANEL[ID_PMUSNO1], ID_PANEL[ID_PMUSNO2], PT_NON+PT_BIG, 1 );
// æSï╚ö╘ìåé≡ìXÉV
__setNumFnt( endtrack, ID_PANEL[ID_PMUSMAX1], ID_PANEL[ID_PMUSMAX2], PT_NON, 1 );
break;
// ëëætö╘ìåò\Īé≡ìXÉV //
default:
// ëëætö╘ìå
__setNumFnt( musNo, ID_PANEL[ID_PMUSNO1], ID_PANEL[ID_PMUSNO2], PT_NON+PT_BIG, 1 );
// æSï╚ö╘ìå
__setNumFnt( endtrack, ID_PANEL[ID_PMUSMAX1], ID_PANEL[ID_PMUSMAX2], PT_NON, 1 );
break;
}
return NOERR;
}
/*===================================================================*/
/* âAâCâRâôÅπé╠ò\ĪìXÉV */
/*===================================================================*/
int update_ICON( int force )
{
static int animNo = PT_ANIM_MIN;
static int oldNo = -9;
int musNo;
register int foo,bar;
// éαé╡ï¡ÉºÅæè╖éªé┼é╚é»éΩé╬âAâjâüü[âVâçâô
if ( force==0 && oldNo>0 ){
MMI_SendMessage( ID_ICON[ID_ANIM], MM_SETSHAPE, 1, animNo);
MMI_SendMessage( ID_ICON[ID_ANIM], MM_SHOW, 0 );
animNo++;
if ( animNo>PT_ANIM_MAX){
animNo = PT_ANIM_MIN;
}
}
/* ÆΓÄ~Æå é┼üAforth==0 é╚éτÅIù╣ */
if ( (oldNo<1) && (force==0) ){
return NOERR;
}
//
musNo = getPlayStatus();
// ï╚ö╘ìåé╠ò√é═òsùvé╚Åæè╖éªé≡é╡é╚éó
if ( (oldNo == musNo) && (force==0) ){
return NOERR;
}
oldNo = musNo;
switch( musNo ){
// éαé╡âGâëü[é╚éτ
case -1:
/* ëëætö╘ìåò\Īé≡"Er"é╔ */
MMI_SendMessage( ID_ICON[ID_MUSNO1], MM_SETSHAPE, 1, PT_E);
MMI_SendMessage( ID_ICON[ID_MUSNO2], MM_SETSHAPE, 1, PT_r);
// CDâAâjâüü[âVâçâôÆΓÄ~
MMI_SendMessage( ID_ICON[ID_ANIM], MM_SETSHAPE, 1, PT_ANIM_NON);
MMI_SendMessage( ID_ICON[ID_ANIM], MM_SHOW, 0 );
break;
// éαé╡ÆΓÄ~Æåé╚éτ
case 0:
/* ëëætö╘ìåò\Īé≡"--"é╔ */
MMI_SendMessage( ID_ICON[ID_MUSNO1], MM_SETSHAPE, 1, PT_HFN);
MMI_SendMessage( ID_ICON[ID_MUSNO2], MM_SETSHAPE, 1, PT_HFN);
break;
// ëëætö╘ìåò\Īé≡ìXÉV //
default:
if ( (musNo>99)|| (musNo<1) ){
musNo=99;
}
foo = musNo / 10;
if (foo > 0){
foo+=PT_NUM;
} else {
foo =PT_NON; // Åπê╩îàé¬0é╚éτë╜éαò\Īé╡é╚éóéµéñé╔
}
bar = (musNo % 10) + PT_NUM;
MMI_SendMessage( ID_ICON[ID_MUSNO1], MM_SETSHAPE, 1, foo);
MMI_SendMessage( ID_ICON[ID_MUSNO2], MM_SETSHAPE, 1, bar);
break;
}
MMI_SendMessage( ID_ICON[ID_MUSNO1], MM_SHOW, 0 );
MMI_SendMessage( ID_ICON[ID_MUSNO2], MM_SHOW, 0 );
return NOERR;
}
/*===================================================================*/
/* ébécò\ĪìXÉV(Åπê╩è╓Éö) */
/*===================================================================*/
int updateCDdisp( force )
{
static int btime = 0;
register int ntime;
ntime = MOS_getTime();
/* æOë±é⌐éτ600msûóû₧é┼üAé⌐é┬ï¡Éºò\Īé┼é╚é»éΩé╬ÅIù╣ */
if ( (abs(ntime - btime) < 30) && (force == 0) ){
return NOERR;
}
btime = ntime;
/* ëëætÅ≤æ╘é≡ĵô╛é╡ö╘ìåò\Īé≡ìXÉV */
if ( dispMode == DISPMODE_ICON ){
update_ICON( force );
} else {
update_PANEL( force );
}
return NOERR;
}
/*===================================================================*/
/* ÅIù╣(âpâlâïÅπé╠â{â^âôè╓Éö)